package edu.utn.tacs.grupouno.ui.server.factories;

import edu.utn.tacs.grupouno.negocio.Indicador;
import edu.utn.tacs.grupouno.negocio.RangoValorReferencia;
import edu.utn.tacs.grupouno.negocio.ResultadoColor;
import edu.utn.tacs.grupouno.negocio.ResultadoNumerico;
import edu.utn.tacs.grupouno.ui.client.dto.IndicadorDTO;
import edu.utn.tacs.grupouno.ui.client.dto.IndicadorDTOColor;
import edu.utn.tacs.grupouno.ui.client.dto.IndicadorDTONumerico;

public class IndicadorDTOFactory {

	public IndicadorDTO create(Indicador indicador) {
		if(indicador.getResultado() instanceof ResultadoNumerico) {
			IndicadorDTONumerico dto = new IndicadorDTONumerico();
			dto.setNombre(indicador.getNombre());
			dto.setResultado(((ResultadoNumerico)indicador.getResultado()).getValor());
			RangoValorReferencia valor = (RangoValorReferencia)indicador.getValor();
			if(valor != null) {
				ResultadoNumerico maximo = (ResultadoNumerico)valor.getValorMaximo();
				ResultadoNumerico minimo = (ResultadoNumerico)valor.getValorMinimo();
				if(maximo != null) {
					dto.setValorMaximo(maximo.getValor());
				}
				if(minimo != null) {
					dto.setValorMinimo(minimo.getValor());
				}
			}
			dto.setEstaOk(indicador.estaOk());
			return dto;
		}
		if(indicador.getResultado() instanceof ResultadoColor) {
			IndicadorDTOColor dto = new IndicadorDTOColor();
			return dto;
		}
		return null;
	}
}
